////////////////////////////////////////////////////////////////////////////////

#ifndef _GUI_H_
#define _GUI_H_

////////////////////////////////////////////////////////////////////////////////

#include "SDL\SDL.h"
#include "SDL\SDL_image.h"
#include "engine.h"


////////////////////////////////////////////////////////////////////////////////


class GUI
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    GUI();
    
    
    /** Destructor */
    ~GUI();

    
////////////////////////////////////////////////////////////////////////////////


    /** Start game */
    void Start();


////////////////////////////////////////////////////////////////////////////////

private:    
    
////////////////////////////////////////////////////////////////////////////////


    /** Processes user input */
    void ProcessEvent( const SDL_Event& _event );


    /** Wait */
    void Wait();


    /** Draw */
    void Draw();


    /** Draw players and bullets */
    void DrawMovingObject( const MovingObject& _object, SDL_Surface* _surface );


    /** Load Image */
    SDL_Surface* LoadImage( std::string _fileName );


    void ApplySurface( int x,
                       int y,
                       SDL_Surface* source,
                       SDL_Surface* destination,
                       SDL_Rect* clip = NULL );


////////////////////////////////////////////////////////////////////////////////


    /** Screen surface */
    SDL_Surface* m_Screen;


    /** Player surface */
    SDL_Surface* m_Player;


    /** Bullet surface */
    SDL_Surface* m_Bullet;


    /** Game engine */
    Engine m_Engine;


    /** Timer */
    Timer m_FPS;


////////////////////////////////////////////////////////////////////////////////
};
    
    
////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////

